home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Communications Toolbox / CommToolbox 1.1 / Interfaces / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-21  |  6.9 KB  |  228 lines  |  [TEXT/MPS ]

  1. /************************************************************
  2.     Terminals.h
  3.     C Interface to the Macintosh Libraries
  4.  
  5.         Copyright Apple Computer, Inc. 1988-1991
  6.         All rights reserved
  7. ************************************************************/
  8.  
  9.  
  10. #ifndef __TERMINALS__
  11. #define __TERMINALS__
  12.  
  13. #ifndef __DIALOGS__
  14. #include <Dialogs.h>
  15. #endif
  16.  
  17. #ifndef __CTBUTILITIES__
  18. #include <CTBUtilities.h>
  19. #endif
  20.  
  21. #ifndef __CONNECTIONS__
  22. #include <Connections.h>
  23. #endif
  24.  
  25.  
  26. enum {
  27.  
  28.  
  29. /* current Terminal Manager version     */
  30.  curTMVersion = 2,
  31.  
  32. /* current Terminal Manager Environment Record version     */
  33.  curTermEnvRecVers = 0,
  34.  
  35. /* error codes    */
  36.  tmGenericError = -1,
  37.  tmNoErr = 0,
  38.  tmNotSent = 1,
  39.  tmEnvironsChanged = 2,
  40.  tmNotSupported = 7,
  41.  tmNoTools = 8
  42. };
  43.  
  44. typedef    OSErr TMErr;
  45.  
  46. enum {tmInvisible         = 1 << 0,tmSaveBeforeClear     = 1 << 1,tmNoMenus             = 1 << 2,
  47.     tmAutoScroll         = 1 << 3,tmConfigChanged        = 1 << 4};
  48. typedef unsigned long TMFlags;
  49.  
  50. enum {selTextNormal         = 1 << 0,selTextBoxed         = 1 << 1,selGraphicsMarquee     = 1 << 2,
  51.     selGraphicsLasso     = 1 << 3,tmSearchNoDiacrit     = 1 << 8    /*    These are only for TMSearchTypes    */,
  52.     tmSearchNoCase         = 1 << 9};
  53. typedef unsigned short TMSearchTypes;
  54.  
  55.  
  56. typedef short TMSelTypes;
  57.  
  58. enum {cursorText = 1,cursorGraphics = 2};
  59. typedef unsigned short TMCursorTypes;
  60.  
  61. enum {tmTextTerminal         = 1 << 0,tmGraphicsTerminal     = 1 << 1};
  62. typedef unsigned short TMTermTypes;
  63.  
  64.  
  65. struct TermDataBlock {
  66.     TMTermTypes        flags;
  67.     Handle            theData;
  68.     Handle            auxData;
  69.     long            reserved;
  70. };
  71.  
  72. typedef struct TermDataBlock TermDataBlock;
  73. typedef TermDataBlock *TermDataBlockPtr, **TermDataBlockH;
  74.  
  75. struct TermEnvironRec {
  76.     short            version;
  77.     TMTermTypes        termType;
  78.     short            textRows;
  79.     short            textCols;
  80.     Point            cellSize;
  81.     Rect            graphicSize;
  82.     Point            slop;
  83.     Rect            auxSpace;
  84. };
  85.  
  86. typedef struct TermEnvironRec TermEnvironRec;
  87. typedef TermEnvironRec *TermEnvironPtr;
  88.  
  89. union TMSelection {
  90.     Rect            selRect;
  91.     RgnHandle        selRgnHandle;
  92. };
  93.  
  94. typedef union TMSelection TMSelection;
  95.  
  96. /*    TMTermTypes     */
  97. struct TermRecord {
  98.         short            procID;
  99.         TMFlags            flags;
  100.         TMErr            errCode;
  101.         long            refCon;
  102.         long            userData;
  103.         ProcPtr            defProc;
  104.         Ptr                config;
  105.         Ptr                oldConfig;
  106.         ProcPtr            environsProc;
  107.         long            reserved1;
  108.         long            reserved2;
  109.         Ptr                tmPrivate;
  110.         ProcPtr            sendProc;
  111.         ProcPtr            breakProc;
  112.         ProcPtr            cacheProc;
  113.         ProcPtr            clikLoop;
  114.         WindowPtr        owner;
  115.         Rect            termRect;
  116.         Rect            viewRect;
  117.         Rect            visRect;
  118.         long            lastIdle;
  119.         TMSelection        selection;
  120.         TMSelTypes        selType;
  121.         long            mluField;
  122. };
  123.  
  124. typedef struct TermRecord TermRecord;
  125. typedef TermRecord *TermPtr, **TermHandle;
  126.  
  127.  
  128. /*    application routines type definitions */
  129. typedef pascal long      (*TerminalSendProcPtr) (Ptr thePtr, long theSize, long refCon, CMFlags flags);
  130. typedef pascal void      (*TerminalBreakProcPtr) (long duration, long refCon);
  131. typedef pascal long      (*TerminalCacheProcPtr) (long refCon, TermDataBlock theTermData);
  132. typedef pascal void      (*TerminalSearchCallBackProcPtr) (TermHandle hTerm, short refNum, Rect foundRect);
  133. typedef pascal Boolean    (*TerminalClikLoopProcPtr) (long refCon);
  134. typedef pascal void      (*TerminalEnvironsProcPtr) (long refCon, ConnEnvironRec *theEnvirons);
  135. typedef pascal void      (*TerminalChooseIdleProcPtr) (void);
  136.  
  137. #ifdef __cplusplus
  138. extern "C" {
  139. #endif
  140. pascal TMErr     InitTM(void);
  141. pascal Handle     TMGetVersion(TermHandle hTerm);
  142. pascal short     TMGetTMVersion(void);
  143.  
  144. pascal TermHandle TMNew(const Rect *termRect,const Rect *viewRect,TMFlags flags,
  145.  short procID,WindowPtr owner,TerminalSendProcPtr sendProc,TerminalCacheProcPtr cacheProc,
  146.  TerminalBreakProcPtr breakProc,TerminalClikLoopProcPtr clikLoop,TerminalEnvironsProcPtr environsProc,
  147.  long refCon,long userData);
  148.  
  149. pascal void     TMDispose(TermHandle hTerm);
  150.  
  151. pascal void     TMKey(TermHandle hTerm,const EventRecord *theEvent);
  152. pascal void     TMUpdate(TermHandle hTerm,RgnHandle visRgn);
  153. pascal void     TMPaint(TermHandle hTerm,const TermDataBlock *theTermData,const Rect *theRect);
  154. pascal void     TMActivate(TermHandle hTerm,Boolean activate);
  155. pascal void     TMResume(TermHandle hTerm,Boolean resume);
  156. pascal void     TMClick(TermHandle hTerm,const EventRecord *theEvent);
  157. pascal void     TMIdle(TermHandle hTerm);
  158.  
  159. pascal long     TMStream(TermHandle hTerm,void *theBuffer,long theLength,CMFlags flags);
  160. pascal Boolean     TMMenu(TermHandle hTerm,short menuID,short item);
  161.  
  162. pascal void     TMReset(TermHandle hTerm);
  163. pascal void     TMClear(TermHandle hTerm);
  164.  
  165. pascal void        TMResize(TermHandle hTerm,const Rect *newViewRect);
  166.  
  167. pascal long     TMGetSelect(TermHandle hTerm,Handle theData,ResType *theType);
  168. pascal void     TMGetLine(TermHandle hTerm,short lineNo,TermDataBlock *theTermData);
  169. pascal void     TMSetSelection(TermHandle hTerm,const TMSelection *theSelection,
  170.  TMSelTypes selType);
  171.  
  172. pascal void     TMScroll(TermHandle hTerm,short dh,short dv);
  173.  
  174. pascal Boolean     TMValidate(TermHandle hTerm);
  175. pascal void     TMDefault(Ptr *theConfig,short procID,Boolean allocate);
  176.  
  177. pascal Handle     TMSetupPreflight(short procID,long *magicCookie);
  178. pascal void     TMSetupSetup(short procID,const void *theConfig,short count,
  179.  DialogPtr theDialog,long *magicCookie);
  180. pascal Boolean     TMSetupFilter(short procID,const void *theConfig,short count,
  181.  DialogPtr theDialog,EventRecord *theEvent,short *theItem,long *magicCookie);
  182. pascal void     TMSetupItem(short procID,const void *theConfig,short count,
  183.  DialogPtr theDialog,short *theItem,long *magicCookie);
  184. pascal void     TMSetupXCleanup(short procID,const void *theConfig,short count,
  185.  DialogPtr theDialog,Boolean OKed,long *magicCookie);
  186. pascal void     TMSetupPostflight(short procID);
  187.  
  188. pascal Ptr         TMGetConfig(TermHandle hTerm);
  189. pascal short     TMSetConfig(TermHandle hTerm,const void *thePtr);
  190.  
  191. pascal OSErr     TMIntlToEnglish(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  192.  short language);
  193. pascal OSErr     TMEnglishToIntl(TermHandle hTerm,const void *inputPtr,Ptr *outputPtr,
  194.  short language);
  195.  
  196. pascal void     TMGetToolName(short id,Str255 name);
  197. pascal short     TMGetProcID(ConstStr255Param name);
  198.  
  199. pascal void     TMSetRefCon(TermHandle hTerm,long refCon);
  200. pascal long     TMGetRefCon(TermHandle hTerm);
  201.  
  202. pascal void     TMSetUserData(TermHandle hTerm,long userData);
  203. pascal long     TMGetUserData(TermHandle hTerm);
  204.  
  205. pascal short     TMAddSearch(TermHandle hTerm,ConstStr255Param theString,const Rect *where,
  206.                             TMSearchTypes searchType,TerminalSearchCallBackProcPtr callBack);
  207. pascal void     TMRemoveSearch(TermHandle hTerm,short refnum);
  208. pascal void     TMClearSearch(TermHandle hTerm);
  209.  
  210. pascal Point     TMGetCursor(TermHandle hTerm,TMCursorTypes cursType);
  211.  
  212. pascal TMErr     TMGetTermEnvirons(TermHandle hTerm,TermEnvironRec *theEnvirons);
  213.  
  214. pascal short     TMChoose(TermHandle *hTerm,Point where,TerminalChooseIdleProcPtr idleProc);
  215.  
  216. pascal void     TMEvent(TermHandle hTerm,const EventRecord *theEvent);
  217.  
  218. pascal Boolean     TMDoTermKey(TermHandle hTerm,ConstStr255Param theKey);
  219. pascal short     TMCountTermKeys(TermHandle hTerm);
  220. pascal void     TMGetIndTermKey(TermHandle hTerm,short id,Str255 theKey);
  221.  
  222. pascal void        TMGetErrorString(TermHandle hTerm,short id,Str255 errMsg);
  223. #ifdef __cplusplus
  224. }
  225. #endif
  226.  
  227. #endif
  228.